package com.xf.common.core.entity.dmp;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xf.common.core.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author JoeyLiu
 * @create 2022-04-01 13:59
 */

/**
 * 后台用户表
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class DmpAuthUser extends BaseEntity implements Serializable {
    /**
     * 租户id（组织id）
     */
//    @NotNull(message = "租户id不能空")
    private Long tenantId;

    /**
     * 组织名称
     */
    @NotBlank(message = "组织名称不能空")
    private String organizationId;

    /**
     * 用户名
     */
    @NotBlank(message = "用户名称不能空")
    private String userName;

    /**
     * 用户编码
     */
    private String userCode;

    /**
     * 密码
     */
    private String password;

    /**
     * 手机
     */
    @NotBlank(message = "手机号码不能为空")
    private String telPhone;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 昵称
     */
    private String alias;

    private String openId;

    /**
     * 最后登录时间
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private String loginTime;

    /**
     * 是否管理员
     */
    private Boolean isAdmin;

    /**
     * 部门名称
     */
    private String departmentName;

    /**
     * 职位名称
     */
    private String positionName;

    /**
     * 是否认证平台管理员
     */
    private Boolean isGlobalAdmin;

    /**
     * 登录app
     */
    @NotBlank(message = "应用名称不能为空")
    private String signupApplication;

    /**
     * 上次登录时间
     */
    private String lastSigninTime;

    /**
     * ip地址
     */
    private String lastSigninIp;

    /**
     * QQ
     */
    private String qq;

    /**
     * 微信
     */
    private String wechat;

    /**
     * 苹果
     */
    private String apple;

    /**
     * 状态(1:激活；0:停用)
     */
    private Integer state;


    /**
     * 角色 ID
     */

    @TableField(exist = false)
    private String roleId;

    @TableField(exist = false)
    private String roleName;
}
